package pe.edu.upc.dew.pharma.controller;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import pe.edu.upc.dew.pharma.service.ProductoService;
import pe.edu.upc.dew.pharma.util.Constante;

@Controller
public class ProductoController extends BaseController
{
	private static final Log logger = LogFactory.getLog(ProductoController.class);
	
	@Autowired
	private ProductoService productoService; 

	private static final String PAGE_PRODUCTOPEDIDO = "listarProductosPedidos";
	private static final String PAGE_PRODUCTODETALLE = "detalleProducto";
	private static final String PAGE_PRODUCTOS = "Productos";
	
	@RequestMapping(Constante.REQUEST_GETPRODUCTS)
	public ModelAndView getProductos(HttpServletRequest request)
	{
		String idCategoria = request.getParameter("idCategoria");
		
		if(idCategoria == null)
		{
			logger.debug("listados de productos");
			request.removeAttribute("idCategoria");
			request.setAttribute("listaProductos", productoService.listarProductos());
		}
		else
		{
			if (logger.isDebugEnabled()){
				logger.debug("listados de productos por categoria: " + idCategoria);
			}
			request.setAttribute("idCategoria", idCategoria);
			request.setAttribute("listaProductos", productoService.listarProductos(idCategoria));
		}
		request.setAttribute("listaProductosOfertados", productoService.listarProductosOfertados());
		
		pagingVariables(request);
		
		return new ModelAndView(PAGE_PRODUCTOS);
	}
	
	private void pagingVariables(HttpServletRequest request)
	{
		String beginpage = request.getParameter("beginpage");
		String endpage = request.getParameter("endpage");
		if (beginpage != null)
		{
			request.setAttribute("beginpage", beginpage);
		}
		else
		{
			request.setAttribute("beginpage", "1");
		}
		if (endpage != null)
		{
			request.setAttribute("endpage", endpage);
		}
		else
		{
			request.setAttribute("endpage", "6");
		}
	}
	
	@RequestMapping("/listarProductosPedidos.do")
	public ModelAndView getProductsPedidos(HttpServletRequest request) throws Exception
	{
	
		//String idCategoria = request.getParameter("idCategoria=");
		request.setAttribute("listaProductos", productoService.listarProductosPedidos());

		return new ModelAndView(PAGE_PRODUCTOPEDIDO, "", null);
	}
	
	public ModelAndView getProducto(HttpServletRequest request) throws Exception
	{
		//String idCategoria = request.getParameter("idCategoria=");
		request.setAttribute("producto", productoService.buscarProductoxID("0"));

		return new ModelAndView(PAGE_PRODUCTODETALLE, "", null);
	}
}
